package com.zang.tree;

/**
 * @author ZVerify
 * @since 2022/11/01 15:31
 * @see <a href="https://leetcode.cn/problems/search-in-a-binary-search-tree/">...</a>
 **/
public class 二叉搜索树中的搜索 {

    public TreeNode searchBST(TreeNode root, int val) {

        return dfs(root,val);
    }

    private TreeNode dfs(TreeNode root, int val) {
        // 如果为null则为null;
        if (root==null) return null;
        // 看自己是不是
        if (root.val==val) return root;
        // 查询左边
        TreeNode left = dfs(root.left, val);
        // 查询右边
        TreeNode right = dfs(root.right, val);
        // 左边找到直接返回左边节点
        if (left!=null) return left;
        // 右边找到直接返回右边节点
        if (right!=null) return right;
        // 都没有找到的话直接返回null
        return null;
    }


}
